#03 Var % Presup / Real = 
/*--------------------------------------------------------------------------------------------------------------------------------------
Objetivo: Obtención de la variación % con el tratamiento de aparición de ceros y de valores negativos en denominador
--------------------------------------------------------------------------------------------------------------------------------------*/
VAR _real =         [#01 Sum importe real]                                  //Almacenamos importes de diarioPYG
VAR _presup =       [#02 Sum importe presup]                                //Almacenamos importes de presupuesto
VAR _reales =       CALCULATE(                                              //Calculamos...
                        SUM(factDiario[Importe]),                           //...los importes reales...
                        ALLSELECTED(dimPGC),                                //...en todos los dptos visibles...
                        dimPGC[nomEstado] = "P&G"                           //...solo de cuentas de PYG
                    )                                                       //OBJETIVO: evitar -100% si no hay datos reales

VAR _variacion =    SWITCH(
                        TRUE(),
                        _reales = 0,                BLANK(),                //...si no hay datos reales, BLANK.
                        _presup <> 0 && _real <> 0, DIVIDE(                 //...si ningún importe = 0...
                                                        _real - _presup,    //...dividimos numerador...
                                                        ABS(_presup)        //...entre ABS denominador...
                                                    ),                      //...(incluidos valores negativos)
                        _presup = _real,            BLANK(),                //...Si importes = 0, BLANK
                        _real > _presup,            1,                      //Aumento hasta 0 o desde 0, +100%
                        -1                                                  //Disminución hasta 0 o desde 0, -100%
                    )

/*--------------------------------------------------------------------------------------------------------------------------------------
Discriminación de signos según tipo de saldo (ingreso o resultado / gasto)
--------------------------------------------------------------------------------------------------------------------------------------*/
VAR _filtDpto =	SELECTEDVALUE(dimDepartamentos[nombre])                     //Tomamos nombre del Dpto. del ctxto
VAR _total =    NOT ISFILTERED(dimDepartamentos[nombre])                    //¿No está filtrado Dpto.? => TRUE

VAR _result =	IF(                                     
                    _filtDpto = "Ingresos" || _total,                       //Sí _filtDpto =Ingresos o =Total...
                    _variacion,                                             //...devolver _variacion de SWITCH
                    _variacion * -1                                         //...si no, cambiar signo _variación
                )
		
RETURN          _result
